# 获取当前目录
PWD:=$(shell pwd)
# Linux 内核的构建路径
KBUILD_DIR:=/lib/modules/$(shell uname -r)/build

# obj-m 表示将 mymisc.c 这个文件 编译为 mymisc.ko 模块。
obj-m += mymisc.o

# 编译成模块
all: drv testapp

drv:
	make -C $(KBUILD_DIR) M=$(PWD) modules

testapp: test.c
	gcc -o $@ -g $<

test: drv testapp
	-sudo rmmod mymisc >/dev/null 2>&1
	sudo insmod mymisc.ko dev_param=7788 dev_args=10,20,30,40
	sudo lsmod |grep mymisc
	cat /proc/misc |grep mymisc
	#sudo chmod 777 /dev/mymisc
	ls -la /dev/mymisc
	sudo ./testapp /dev/mymisc
	sudo rmmod mymisc
	#dmesg
	#cat /dev/kmsg

clean:
	-rm -f ./testapp >/dev/null 2>&1
	make -C $(KBUILD_DIR) M=$(PWD) clean
